import java.io.*;
import java.util.*;
public class Main {
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
static int [] arr;
static boolean [] isVisited;
static void dfs(int n, int m, int d) throws IOException{
if(d == m) {
for(int e : arr) {
bw.write(e + " ");
}
bw.write("\n");
return;
}
for(int i = 1;i <= n;i++) {
if(!isVisited[i]) {
isVisited[i] = true;
arr[d] = i;
dfs(n, m, d+1);
isVisited[i] = false;
}
}
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
arr = new int [m];
isVisited = new boolean [n+1];
dfs(n, m, 0);
bw.flush();
}
}